package org.jeecg.modules.engine.service;

import org.jeecg.common.system.base.service.JeecgService;
import org.jeecg.modules.task.entity.TaskInfoBase;

/**
 * @Description: 工作流引擎方法
 * @Author: wufanxin
 * @Date:  2021-06-15
 * @Version: V1.0
 */
public interface IWorkflowEngineService {

    /**
     * 开启一个工作流
     * @param workflowId
     * @param taskNo
     * @param userId
     * @param userName
     */
    public void startWorkFlow(String workflowId,String taskNo,String userId,String userName);

    /**
     * 授权
     * @param taskNo
     * @param childNodeId
     * @param userId
     * @param grantUserId
     * @param grantUserName
     * @param userName
     */
    public void grant(String taskNo,String childNodeId,String userId,String grantUserId,String grantUserName,String userName);
    public void grantReverse(String taskNo,String childNodeId,String userId,String grantUserId,String grantUserName,String userName);

    /**
     * 加签
     * @param taskNo
     * @param childNodeId
     * @param userId
     * @param grantUserId
     * @param grantUserName
     * @param userName
     */
    public void grantTaskBoost(String taskNo,String childNodeId,String userId,String grantUserId,String grantUserName,String userName);



    /**
     * 提交下一个节点
     * @param taskNo
     * @param childNodeId
     * @param userId
     * @param userName
     */
    public void process(String taskNo,String childNodeId,String userId,String userName);

    /**
     * 驳回
     * @param taskNo
     * @param childNodeId
     * @param userId
     * @param userName
     */
    public int reject(String taskNo,String childNodeId,String userId,String userName,String remark);
}
